package com.myKng.content.repository;

import com.myKng.content.model.Category;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface CategoryRepository extends JpaRepository<Category, Long> {
    
    // 根据父分类ID查询子分类列表
    List<Category> findByParentId(Long parentId);
    
    // 根据层级查询分类列表
    List<Category> findByLevel(Integer level);
    
    // 根据创建者查询分类列表
    Page<Category> findByCreatedBy(String createdBy, Pageable pageable);
    
    // 根据名称模糊查询
    Page<Category> findByNameContaining(String name, Pageable pageable);
    
    // 查询顶级分类（parentId为null的分类）
    List<Category> findByParentIdIsNull();
    
    // 根据名称和父ID查询分类
    Optional<Category> findByNameAndParentId(String name, Long parentId);
}